perm filename WALK.SAI[CMS,LCS] blob sn#103188 filedate 1974-05-23 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00004 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	BEGIN "WALK"
C00004 00003	SUBR GOOSE
C00006 00004	α MAIN EXECUTION
C00008 ENDMK
C⊗;
BEGIN "WALK"
	REQUIRE "MESGEM.HDR[SAI,BGB]" SOURCE_FILE;
	DEFINE α="COMMENT";
	DEFINE π="3.1415927";
	DEFINE SUBR="SIMPLE PROCEDURE";
	DEFINE ISUBR="SIMPLE INTEGER PROCEDURE";
	DEFINE THRU="STEP 1 UNTIL";
	DEFINE ⊂="BEGIN";
	DEFINE ⊃="END";

	INTEGER ROBOT,HEAD,RARM,LARM,BODY,RLEG,LLEG,RFOOT,LFOOT,B1;

SUBR INIT;	α INITIALIZATION;
BEGIN "INIT"
	MKUNIV;GEODPY;
	B1←MKCUBE(7.0,.2,32.0);
	ROBOT←INB3D("ROBOT[CMS,LCS]");
	HEAD←FDNAME("HEAD");
	RARM←FDNAME("RARM");
	LARM←FDNAME("LARM");
	BODY←FDNAME("BODY");
	RLEG←FDNAME("RLEG");
	LLEG←FDNAME("LLEG");
	RFOOT←FDNAME("RFOOT");
	LFOOT←FDNAME("LFOOT");
	SHRINK(ROBOT,0.5,0.5,0.5);
	ROTATE(ROBOT,0,π/4,0);
	ROTATE(B1,0,π/4,0);TRANSL(-B1,0,-2.8,-15.9);
	TRANSL(-ROBOT,7,0,0);
	GEODPY;
END "INIT";
SUBR GOOSE;
BEGIN "GOOSE"
	INTEGER I;
	REAL DW,DQ,DF;
	DF ← -.07;
	DW ← π*10/180;
	DQ ← π*7/180;
	FOR I←1 THRU 5 DO 
	⊂ ROTATE(-RLEG,0,0,-DW);ROTATE(-LLEG,0,0,+DW);
	  ROTATE(-RFOOT,0,0,-DW/4);ROTATE(-LFOOT,0,0,+DW/4);
	  ROTATE(-LARM,-DQ,0,0);ROTATE(-RARM,DQ,0,0);
	  ROTATE(-HEAD,0,-DW,0);TRANSL(-BODY,-.2,DF,0);GEODPY;⊃;
BEGIN "FOREVER"
	INTEGER L,K;
	FOR L←1 THRU 3 DO
	⊂ DW ← -DW;
	DQ ← -DQ;
	FOR K←1 THRU 2 DO
	⊂ DF ← -DF;
	FOR I←1 THRU 5 DO
	⊂ ROTATE(-RLEG,0,0,-DW);ROTATE(-LLEG,0,0,+DW);
	  TRANSL(-BODY,-.2,DF,0);ROTATE(-RFOOT,0,0,-DW/4);
	  ROTATE(-HEAD,0,-DW,0);ROTATE(-LFOOT,0,0,+DW/4);
	  ROTATE(-LARM,-DQ,0,0);ROTATE(-RARM,DQ,0,0); GEODPY;⊃;⊃;⊃;
	FOR L←1 THRU 10 DO
	⊂ ROTATE(-BODY,0,0,2*-DW);TRANSL(-BODY,-.5,0,0);
	  TRANSL(BODY,0,-.4,0);GEODPY;⊃;
	FOR L←1 THRU 14 DO
	⊂ TRANSL(BODY,0,-.3,0);GEODPY;⊃;
END "FOREVER";

END "GOOSE";
α MAIN EXECUTION;
	INIT;
	GOOSE;

END "WALK";